//-------------------------------------------------------------------
//	Copyright (c) 2010-2012  Zhirnov Andrey
//	This file is part of the "UXGEN" project.
//	See copyright notice in "Engine.h".
//-------------------------------------------------------------------

#ifndef _UX_GUI_ENUMS_H
#define _UX_GUI_ENUMS_H

#include "Enums.h"

namespace Engine
{

// --------------------- GUI Object Type ------------------------- //

namespace e_gui_object
{
	enum	type	: uint16
	{
		UNKNOWN = 0,
		WIDGET,
		STYLE,
		SCREEN,
	};
}
UX_ENUM_META_OBJECT( e_gui_object::type );


// ------------------ GUI Widget Component Type ------------------ //
/*
namespace e_widget
{
	enum	type	: uint16
	{
		UNKNOWN		= 0,

		// base object //
		WIDGET,

		// sub container //
		WINDOW,
		FORM,			// debug version of window

		// cursor //
		CURSOR,

		// simple components //
		LABEL,
		BUTTON,
		IMAGE_BUTTON,
		SHAPE_BUTTON,
		TEXTBOX,
		CHECKBOX,
		RADIOGRUP,
		PROGRESSBAR,
		PANEL,
		//PICTURE,
		//ANIMATION,

		// compound components //
		SCROLLBAR,
		TRACKBAR,
		LISTBOX,
		MEMO,			// multiline textbox
		COMBOBOX,
		GROUPBOX,
		TABCONTROL,
		TREEVIEW,
		NUMERIC_UPDOWN,
		LISTBOX_EXT,
		MEDIAPLAYER,
		TOOLSTRIP,
		PROPERTYGRID,
		INVENTARY,
		RICH_MEMO,

		_COUNT
	};
}
UX_ENUM_META_OBJECT( e_widget::type );


// ---------------------- GUI Screen Types ----------------------- //

namespace e_gui_screen
{
	enum	type	: uint16
	{
		UNKNOWN = 0,
	};
}
UX_ENUM_META_OBJECT( e_gui_screen::type );

*/
// ------------------------ GUI Cursor Type ---------------------- //

namespace e_gui_cursor
{
	enum	type	: uint8
	{
		HIDE		= 0,		// hide cursor
		ARROW		= 1,		// default
		CROSS		= 2,
		BEAM		= 3,		// edit text
		SIZE		= 4,		// resize
		DRAG		= 5,		// move
		WAIT		= 6,
	};
}
UX_ENUM_META_OBJECT( e_gui_cursor::type );


// ---------------------- Text Align Flags ----------------------- //

namespace e_text_align
{
	enum	type	: uint8
	{
		LEFT		= 0x01,
		RIGHT		= 0x02,
		CENTER_X	= 0x04,
		TOP			= 0x10,
		BOTTOM		= 0x20,
		CENTER_Y	= 0x40,
		SCALE		= 0x88,
		CENTER		= CENTER_X | CENTER_Y,
		DEFAULT		= CENTER_Y | LEFT
	};

	UX_ENUM_BIT_OPERATIONS( type, uint8 )
}
UX_ENUM_META_OBJECT( e_text_align::type );


// ------------------- Widget Parameters Flags ------------------- //

namespace e_widget_flags
{
	enum	type	: uint8
	{
		AUTOSIZE		= 0x01,		// 
		LOCKED			= 0x02,		// can't be dragging
		CANRESIZE		= 0x04,		// can be resized
		PROPORTIONALY	= 0x08,		// proportionaly scale
	};

	UX_ENUM_BIT_OPERATIONS( type, uint8 )
}
UX_ENUM_META_OBJECT( e_widget_flags::type );


// ------------------------- Border ------------------------------ //

UX_ENUM_META_OBJECT( e_border::type );

//-------------------------------------------------------------------

}	// Engine

#endif	// _UX_GUI_ENUMS_H